home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Source / IBPalettes / WWTCLKit / WWDADTextField.m < prev    next >
Encoding:
Text File  |  1995-03-22  |  1.9 KB  |  102 lines

  1.  
  2. #import "WWDADTextField.h"
  3.  
  4. @implementation WWDADTextField
  5.  
  6. - initFrame:(const NXRect *)r
  7. {
  8.     const char  *WDRAG_PBTYPE[] = { NXFilenamePboardType, NULL};
  9.  
  10.  
  11.     [super initFrame:r];
  12.     [self registerForDraggedTypes:WDRAG_PBTYPE count:1];
  13.     [[self cell] setScrollable:YES];
  14.     
  15.     return self;
  16. }
  17.  
  18. - awake
  19. {
  20.   const char  *WDRAG_PBTYPE[] = { NXFilenamePboardType, NULL};
  21.  
  22.  
  23.   [super awake];
  24.   [self registerForDraggedTypes:WDRAG_PBTYPE count:1];
  25.  
  26.   return self;
  27. }
  28.  
  29.  
  30.  
  31. ////////////////////////////////////////////////////////////////////
  32. //            Font stuff
  33. ///////////////////////////////////////////////////////////////////
  34.  
  35. - changeFont:sender
  36. {
  37.   [cell setFont:[sender convertFont:[cell font]]];
  38.   return self;
  39. }
  40.  
  41.  
  42. - changeIBFont:sender
  43. {
  44.   [cell setFont:[sender convertFont:[cell font]]];
  45.   return self;
  46. }
  47.  
  48.  
  49. ////////////////////////////////////////////////////////////////////
  50. //            Dragging stuff
  51. ///////////////////////////////////////////////////////////////////
  52.  
  53.  
  54. - (NXDragOperation)draggingEntered:(id <NXDraggingInfo>)sender
  55. {
  56.     Pasteboard    *pboard;
  57.     const NXAtom  *theType;
  58.  
  59.  
  60.     pboard = [sender draggingPasteboard];
  61.     theType = [pboard types];
  62.  
  63.     if (*theType != NXFilenamePboardType)
  64.     {  return NX_DragOperationCopy;
  65.     }
  66.     return NX_DragOperationNone;
  67. }
  68.  
  69. - (NXDragOperation)draggingUpdated:(id <NXDraggingInfo>)sender
  70. {
  71.     return NX_DragOperationCopy;
  72. }
  73.  
  74.  
  75. - (BOOL)performDragOperation:(id <NXDraggingInfo>)sender
  76. {
  77.     Pasteboard    *pboard;
  78.     char          *argv;
  79.     int           len;
  80.     const NXAtom  *theType;
  81.  
  82.  
  83.     pboard = [sender draggingPasteboard];
  84.     theType = [pboard types];
  85.  
  86.     if (*theType != NXFilenamePboardType)
  87.     {  if ([pboard readType:NXFilenamePboardType data:&argv length:&len] == nil)
  88.        {  return NO;
  89.        }
  90.        else
  91.        {  [self setStringValue:(const char *)argv];
  92.       [self display];
  93.           return YES;
  94.        }
  95.     }
  96.     else
  97.     {  return NO;
  98.     }
  99. }
  100.  
  101. @end
  102.